/**
 * @author Vitor Franco do Carmo (vitor.carmo@capgemini.com)
 * @since 10/04/2013
 *
 */
package br.com.vfcfw.controller.filter;

import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;

import br.com.vfcfw.commons.util.ValidacaoUtil;

/**
 * Classe base para todas as classes que implementem {@link Filter}. <p>Esta classe cria uma referência de FilterConfig
 * para pode ser acessada no método doFilter nas subclasses.</p>
 * 
 * @author Vitor Franco do Carmo (vitor.carmo@capgemini.com)
 * @since 10/04/2013
 * 
 */
public abstract class BaseFilter implements Filter {

    protected FilterConfig filterConfig;

    /**
     * {@inheritDoc}
     * 
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

        this.filterConfig = filterConfig;
    }

    /**
     * {@inheritDoc}
     * 
     * @see javax.servlet.Filter#destroy()
     */
    @Override
    public void destroy() {

        this.filterConfig = null;
    }

    /**
     * Verifica se o valor não é nulo ou vazio.
     * 
     * @param valor Valor.
     * @return <tt>TRUE</tt> se não for <b>nulo</b> ou <b>vazio</b>, <tt>FALSE</tt> caso contrário.
     */
    public boolean possuiValor(Object valor) {

        return ValidacaoUtil.possuiValor(valor);
    }

}
